/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package gestionTemporada;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import gestionJDBC.*;

/**
 *
 * @author Satellite A500-141
 */
public class TemporadaDB {
   
    private static gestorJDBC gestor=gestorJDBC.getInstance();
    
    /**
     * 
     *Almacena una nueva temporada en la BD
     */
    
    
     public boolean NuevaTemporada(int id_grupo,int anio,String nombre,int n_equipos){
       
           int id=1;
            ResultSet rs=null;
            boolean correcto=false;
         try {
          
            
            rs=gestor.Consultar("Select * from temporada");
            
          while(rs.next()){
              System.out.println("Incrementa el id \n");
              id++;
          };
            
        } catch (SQLException ex) {
            Logger.getLogger(TemporadaDB.class.getName()).log(Level.SEVERE, null, ex);
        }
        
        
        correcto=gestor.Insertar("Insert into temporada values ('"+id+"','"+anio+"','"+nombre+"',1)");
        
        if(correcto==true){
            
            int num_jornadas=(n_equipos-1)*2;
            System.out.printf("El numero de jornadas es : "+num_jornadas+"\n");
            
            for(int i=1;i<=num_jornadas;i++){
                int id_jornada=1;
     
                    try {
                        rs=gestor.Consultar("Select * from jornada");
                        while(rs.next()){
                            id_jornada++;
                        }
                    } catch (SQLException ex) {
                        Logger.getLogger(TemporadaDB.class.getName()).log(Level.SEVERE, null, ex);
                    }
                    
                  
             
               
                correcto=gestor.Insertar("Insert into jornada values('"+id_jornada+"',null,null,'"+i+"')");
                correcto=gestor.Insertar("Insert into temporada_contiene_jornadas values ('"+id+"','"+id_jornada+"')");
                
                
            }
            correcto=gestor.Insertar("Insert into grupo_tiene_temporadas values ('"+id_grupo+"','"+id+"')");
        }
        else{
             JOptionPane.showMessageDialog(null, "No se ha podido insertar la temporada\n");
        }
        return correcto;
        
        
    }
     
     /**
      * 
      * Borra una nueva temporada de la BD
      */
     
     public boolean BajaTemporada(int id_temporada,int id_grupo){
         
         boolean exito=false;
         
         exito=gestor.Modificar("Update temporada set alta=0 where id_temporada='"+id_temporada+"'");
         
         if(exito==true){
             exito=gestor.Borrar("Delete from grupo_tiene_temporadas where id_temporada='"+id_temporada+"' and "
                     + "id_grupo='"+id_grupo+"'"); 
         }
         
         return exito;
     }
     /**
      * Consulta las temporadas de un grupo
      */
    
     public ArrayList<Temporada> ConsultaTemporada(int id_grupo){
      
            ArrayList<Temporada> temp=new ArrayList<Temporada>(50);
            Temporada aux =new Temporada();
            ResultSet rs;
            int i=0;
            
            rs=gestor.Consultar("Select p.id_temporada,p.anio,p.nombre,p.alta from temporada p,grupo_tiene_temporadas q where p.id_temporada=q.id_temporada and q.id_grupo='"+id_grupo+"'");
             try { 
            while(rs.next()){
                aux=new Temporada();
                aux.setId((Integer) rs.getObject("p.id_temporada"));
                aux.setAnio((Integer) rs.getObject("p.anio"));
                aux.setNombre((String) rs.getObject("p.nombre"));
                aux.setAlta((Integer) rs.getObject("p.alta"));
                temp.add(i,aux);
                i++;
            }
        } catch (SQLException ex) {
            Logger.getLogger(TemporadaDB.class.getName()).log(Level.SEVERE, null, ex);
        }
        return temp;
     }
     
     public int getIdTemporada (String nombre_temporada){
         ResultSet rs;
         int temp = -1;
         rs = gestor.Consultar("SELECT id_temporada FROM temporada WHERE nombre='"+nombre_temporada+"' AND alta='1'");
          try { 
            while(rs.next()){
                temp = (Integer) rs.getObject("id_temporada");
            }
        } catch (SQLException ex) {
            Logger.getLogger(TemporadaDB.class.getName()).log(Level.SEVERE, null, ex);
        }
        return temp;
     }
          
}
